﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
using System.Web;

namespace AjaxControlFramework.Reflection
{
    public class PropertySetCacheEntry : ReflectiveCacheEntry
    {
        //------// Properties \\--------------------------------------------\\
        new public virtual PropertySet Delegate { get; set; }
        new public virtual PropertyInfo Info { get; set; }
        public virtual AjaxControlPropertyAttribute Attribute { get; set; }
        //------\\ Properties //--------------------------------------------//



        //------// Constructors \\------------------------------------------\\
        public PropertySetCacheEntry()
            : base()
        { }


        public PropertySetCacheEntry(string propertyName)
            : base(propertyName)
        { }


        public PropertySetCacheEntry(string propertyName, AjaxControlPropertyAttribute attribute)
            : base(propertyName)
        {
            Attribute = attribute;
        }


        public PropertySetCacheEntry(string propertyName, PropertyInfo info, PropertySet del)
            : base(propertyName, null, null)
        {
            Info = info;
            Delegate = del;
        }


        public PropertySetCacheEntry(string propertyName, PropertyInfo info, PropertySet del, AjaxControlPropertyAttribute attribute)
            : base(propertyName, null, null)
        {
            Info = info;
            Delegate = del;
            Attribute = attribute;
        }
        //------\\ Constructors //------------------------------------------//



        //------// Methods \\-----------------------------------------------\\

        //------\\ Methods //-----------------------------------------------//
    }
}
